package lib.bone.nepudata.domain.dto.subject;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author: kindear
 */
@Data
@ApiModel(value = "横向课题更新DTO")
public class NepuSubjectUpdateDTO {

    @NotBlank(message = "横向课题ID不可为空")
    @ApiModelProperty(value = "横向课题ID",name = "id")
    String id;

    @NotBlank(message = "词典ID不可为空")
    @ApiModelProperty(value = "对应课题类型ID",notes = "")
    String subjectDictId;

    /**
     * 横向课题名称
     */
    @NotBlank(message = "横向课题名称不可为空")
    @ApiModelProperty(value = "横向课题名称",notes = "")
    String subjectName;

    /**
     * 横向课题负责人姓名
     */
    @NotBlank(message = "横向课题负责人不可为空")
    @ApiModelProperty(value = "横向课题负责人",notes = "")
    String leader;

    /**
     * 横向课题负责人ID
     */
    @NotNull(message = "横向课题负责人ID不可为空")
    @ApiModelProperty(value = "横向课题负责人ID",notes = "")
    Long leaderId;

    /**
     * 课题编码
     */
    @NotBlank(message = "课题编码负责人不可为空")
    @ApiModelProperty("课题编码")
    String subjectCode;

    /**
     * 横向课题开始日期
     */
    @NotBlank(message = "课题开始日期不可为空")
    @ApiModelProperty(value = "课题开始日期",notes = "课题开始日期，如2021/11/16")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    Date startDate;

    /**
     * 纵向课题完成日期
     */
    @NotBlank(message = "课题结束日期不可为空")
    @ApiModelProperty(value = "课题结束日期",notes = "课题结束日期，如2021/11/16")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    Date endDate;

    /**
     * 横向课题成员ID列表
     */
    @NotEmpty(message = "横向课题成员ID列表不可为空")
    @ApiModelProperty(value = "横向课题成员ID列表",notes = "")
    List<Long> userIdList;

    @NotNull(message = "工作量不可为空")
    @ApiModelProperty(value = "工作量",notes = "")
    Integer workload;
}
